iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0
Security

《Nyahello!從零開始的 30 天 malware 學習日誌》系列 第 5

【Day 5】準備跑起來!認識 malware 基本動態分析工具

  • 分享至 

  • xImage
  •  

沙盒分析

在基礎動態分析工具中,其中最受歡迎的就是沙盒技術,使用沙盒可以在安全的環境中將不受信任的程式跑起來而不會傷害到真實的系統,而在沙盒中也會模擬網路服務以確保惡意程式的功能可以正常運行,我們前天開好的 Windows 虛擬機界可以算是一種把惡意程式隔離起來的沙盒。

使用 malware sandbox

有許多惡意程式沙盒的工具會提供簡單易懂的報告,只要上傳惡意程式就能得到完整的報告,其中會提供網路連線的資訊、創建的檔案及掃瞄的結果等,讓人可以很快速地了解這隻惡意程式的行為,基本上就是自動化的動態分析,但是要小心不要把包含敏感資訊的檔案上傳上去。而且,使用惡意程式沙盒也是有一些缺點,像是因為在沙盒中他只是直接執行,並不會有命令列的選項,這樣惡意程式需要命令列選項的部分就不會被跑到,而且如果這支程式在植入後門前需要接收 C2 封包,那這樣後門就沒有辦法在沙盒中被植入。在沙盒中也可能不是所有事件都有被記錄到,因為在惡意程式中經常會使用 sleep 函式來讓惡意行為要很久以後才會執行,因此很容易錯過事件,雖然沙盒通常會把它 hook 掉,但是因為不是只有一種 sleep 的方法,所以不一定能處理掉全部。除此之外也還有一些潛在的缺點:

  • 有些惡意程式會偵測到自己在虛擬機中而停止或不會正常運作
  • 有些惡意程式可能需要系統中有某些特定的 registry key 或檔案,而沙盒中不一定會有
  • 如果是 DLL 檔案的話可能無法順利運行
  • 沙盒的作業系統如果錯誤惡意程式可能不會順利執行
  • 沙盒無法分析惡意程式的完整行為而只能針對其基本功能提供報告

執行惡意程式

如果沒有辦法把惡意程式跑起來的話我們就沒有辦法進行分析,因此我們要先知道如何將常見的惡意檔案格式跑起來。通常執行檔可以點兩下跑起來,但是 DLL 檔案就沒辦法直接執行,所以要使用 rundll32.exe 來把它跑起來。DLL 檔案本身是可以提供程式碼或功能給其他程式使用的函式庫,所以就是 rundll32.exe 載入並且去執行 DLL 檔案所提供的函式。舉例來說:

C:\>rundll32.exe rip.dll, Install

就是讓 rundll32.exe 去執行 rip.dll 所提供的 Install 這個函式。而我們也可以直接修改 PE header 來讓 DLL 檔案變成可執行檔,這樣他就會去執行 DLLMain。

使用動態分析工具

Procmon

Procmon(Process Monitor)是 Microsoft Sysinternals 的系統活動監控工具,可以即時記錄程式對檔案、Registry、Process/Thread 等資源的操作。惡意程式分析時常用來觀察 malware 執行後建立或修改了哪些檔案、改了哪些 Registry Key,以及是否建立持久化機制,是基礎動態分析最重要的工具之一。

Process Explorer

Process Explorer 是 Microsoft Sysinternals 的進階工作管理員,可以查看目前執行中的 Process、process 間的關係、載入的 DLL、Handles、執行路徑等資訊。分析 malware 時可以用來確認它是否建立新的子 process、注入或載入其他 DLL,以及執行後整體的 Process Tree;目前仍然非常實用。

Regshot

Regshot 用來比較 Windows Registry 與檔案系統執行前後的差異。通常在執行 malware 前拍一次 Snapshot,執行後再拍一次,接著比較兩者,就能快速找到新增、刪除或修改的 Registry Key 和檔案。工具本身較老,但功能單純、現在還是可以使用。

FakeNet-NG

FakeNet-NG 是專門給惡意程式分析使用的網路模擬工具,可以攔截 malware 的網路連線並模擬 DNS、HTTP、HTTPS 等網路服務。即使分析環境沒有真正連上 Internet,也能讓 malware 認為自己成功連到伺服器,方便觀察它查詢哪些 Domain、連哪些 IP、送出什麼 Request,是現代 Windows malware 動態分析很實用的工具。

Wireshark

Wireshark 是封包分析工具(Packet Analyzer),可以擷取並分析網路封包,例如 DNS、TCP、HTTP、TLS 等流量。分析 malware 時,可以查看它與哪些 IP/Domain 通訊、使用哪些 Protocol,以及傳送了什麼資料。它和 FakeNet-NG 很適合一起使用:FakeNet-NG 負責建立假的網路環境,Wireshark 負責詳細觀察其中產生的封包。

INetSim

INetSim(Internet Services Simulation Suite)也是模擬 Internet 服務的工具,可以建立假的 DNS、HTTP、HTTPS、SMTP、FTP 等服務,讓 malware 認為自己正在與 Internet Server 通訊。它通常部署在獨立 Linux VM 上,Windows malware VM 再透過隔離網路連到它。

後話

今天因為重裝環境加上手受傷進度超慢QQ
明天再繼續實戰!

參考資料

  • Practical Malware Analysis (Chapter 3)

本日貓味

https://ithelp.ithome.com.tw/upload/images/20260901/20183878lDWtrGgJgS.jpg


上一篇
【Day 4】師父領進門!開始 malware 初步分析
下一篇
【Day 6】透過動態分析工具觀察 malware 行為!
系列文
《Nyahello!從零開始的 30 天 malware 學習日誌》9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言